package bank;

public class _14LongestPrefix {
    public static String longestCommonPrefix01(String[] strs) {
        if(strs.length == 0) return "";
        StringBuilder res = new StringBuilder(strs[0]);
        for(String string : strs){
            //String类的重要方法！！！
            while(!string.startsWith(res.toString())){
                if(res.length() == 0) return "";
                //这里如果用String类的subString()函数需要注意“左闭右开”原则
                //可以测试一下那种类型的效率更高
                //delete函数也有“左闭右开”原则
                res.delete(res.length()-1,res.length());
            }
        }
        return new String(res);
    }
    //经过测试后发现longestCommonPrefix02的效率更高
    //在时间效率上来说，后者比前者耗时更少！
    public static String longestCommonPrefix02(String[] strs){
        if(strs.length==0)return "";
        //公共前缀比所有字符串都短，随便选一个
        String res = strs[0];
        for (String string : strs) {
            while(!string.startsWith(res)){
                if(res.length()==0)return "";
                //公共前缀不匹配就让它长度-1
                res = res.substring(0, res.length()-1);
            }
        }
        return res;
    }
}
